'\" te
.\" Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH SLPPARSESRVURL 3SLP "Jan 16, 2003"
.SH NAME
SLPParseSrvURL \- parse service URL
.SH SYNOPSIS
.LP
.nf
cc [ \fIflag\fR... ] \fIfile\fR... \fB-lslp\fR [ \fIlibrary\fR... ]
#include <slp.h>

\fBSLPError\fR \fBSLPParseSrvURL\fR(\fBconst char *\fR\fIpcSrvURL\fR, \fBSLPSrvURL**\fR \fIppSrvURL\fR);
.fi

.SH DESCRIPTION
.sp
.LP
The \fBSLPParseSrvURL()\fR routine parses  the \fBURL\fR passed in as the
argument into a service \fBURL\fR structure  and returns it  in the
\fIppSrvURL\fR  pointer.    If a parser error occurs,   returns
\fBSLP_PARSE_ERROR\fR. The  structure  returned  in  \fIppSrvURL\fR should  be
freed with  \fBSLPFree()\fR.  If  the \fBURL\fR has  no service  part, the
\fBs_pcSrvPart\fR string  is  the empty string, \fB""\fR,  that is, it is not
\fINULL\fR. If \fIpcSrvURL\fR  is  not a  service:  URL,  then the
\fBs_pcSrvType\fR field  in  the  returned data  structure  is  the
\fBURL\fR's  scheme,  which might not be the same as the service type  under
which the  \fBURL\fR was  registered.  If  the transport  is  \fBIP\fR, the
\fBs_pcNetFamily\fR field is the empty string.
.sp
.LP
If no error  occurs, the return  value is the  \fBSLP_OK\fR.  Otherwise, if  an
error  occurs, one  of the  \fBSLPError\fR  codes  is returned.
.SH PARAMETERS
.sp
.ne 2
.na
\fB\fIpcSrvURL\fR\fR
.ad
.RS 12n
A pointer to  a character buffer  containing the  null  terminated URL string
to parse.  It is destructively modified to produce the output structure. It may
not be \fINULL\fR.
.RE

.sp
.ne 2
.na
\fB\fIppSrvURL\fR\fR
.ad
.RS 12n
 A pointer to a  ponter for the \fBSLPSrvURL\fR structure  to  receive the
parsed \fBURL\fR. It may not be \fINULL\fR.
.RE

.SH ERRORS
.sp
.LP
This function or its callback may return any \fBSLP\fR error code. See the
ERRORS section in \fBslp_api\fR(3SLP).
.SH EXAMPLES
.LP
\fBExample 1 \fRUsing \fBSLPParseSrvURL()\fR
.sp
.LP
The following example uses the \fBSLPParseSrvURL()\fR function to parse the
service URL \fBservice:printer:lpr://serv/queue1\fR:

.sp
.in +2
.nf
SLPSrvURL* surl;
SLPError err;

err = SLPParseSrvURL("service:printer:lpr://serv/queue1", &surl);
.fi
.in -2

.SH ENVIRONMENT VARIABLES
.sp
.ne 2
.na
\fB\fBSLP_CONF_FILE\fR\fR
.ad
.RS 17n
When set, use this file for configuration.
.RE

.SH SEE ALSO
.sp
.LP
.BR slp_api (3SLP),
.BR slp.conf (5),
.BR slpd.reg (5),
.BR attributes (7),
.BR slpd (8)
.sp
.LP
\fISystem Administration Guide: Network Services\fR
.sp
.LP
Guttman, E.,  Perkins, C., Veizades, J., and Day, M. \fIRFC 2608, Service
Location Protocol, Version 2\fR. The Internet Society. June 1999.
.sp
.LP
Kempf, J. and Guttman, E. \fIRFC 2614, An API for Service Location\fR. The
Internet Society. June 1999.
